package com.zyq.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * author xiaochi
 * date 2024/5/22 9:20
 */
@Inherited
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PreAuthorize {

    /**
     * 是否登录验证
     * @return
     */
    boolean login() default true;

    /**
     * 是否权限验证(默认为空就是不验证),推荐使用简写 || &&
     * 支持 OR AND表达式(如:sys:role:list AND sys:role:add),OR与AND同时存在时,AND优先级最高
     * 注意：OR AND 必须大写，或者使用简写 || &&
     * @return
     */
    String authorize() default "";
}
